package com.atguigu.exer;

import org.junit.Test;

/**
 * @author yihu
 * @create 2021-02-26 16:55
 * @email: 1057202547@qq.com
 * @dec: 获取一个字符串在另一个字符串中出现的次数。
 *       比如：获取“ab”在 “abkkcadkabkebfkaabkskab” 中出现的次数
 */
public class StringDemo1 {
    /**
     * 获取一个字符串在另一个字符串中出现的次数。
     * @param mainStr
     * @param subStr
     * @return
     */
    public  int getCount(String mainStr,String subStr){
        int mainLength = mainStr.length();
        int subLength = subStr.length();
        int count = 0;
        int index = -1;
        int startIndex = 0;//开始查找的位置
        if(mainLength>subLength){
//            while ((index=mainStr.indexOf(subStr)) != -1){
//                count++;
//                mainStr = mainStr.substring(index + subLength);
//            }
            //效率更高
            while ((index=mainStr.indexOf(subStr,startIndex)) != -1){
                count++;
                startIndex = index + subLength;
            }
            return  count;
        }
        return 0;
    }

    @Test
    public void testGetCount(){
        String mainStr = "abkkcadkabkebfkaabkskab";
        String subStr = "ab";
        int count = getCount(mainStr, subStr);
        System.out.println(count);
    }
}
